package LeetCode;

import java.util.Stack;

/**
 * @author 豆包LU
 * @date 2023/4/11 16:00
 */
public class Offer09 {
    private Stack<Integer> stack1; // 栈1用于插入元素
    private Stack<Integer> stack2; // 栈2用于删除元素

    public  Offer09() {
        stack1 = new Stack<>();
        stack2 = new Stack<>();
    }

    public void appendTail(int value) {
        stack1.push(value);
        // 将元素插入栈1
    }

    public int deleteHead() {
        if (stack2.isEmpty()) {
            // 如果栈2为空，则将栈1的元素全部倒入栈2
            while (!stack1.isEmpty()) {
                stack2.push(stack1.pop());
                //stack1.pop()用于从栈顶弹出（删除）一个元素，并返回该元素的值。
            }
        }

        if (stack2.isEmpty()) {
            // 如果栈2仍然为空，说明队列中没有元素，返回-1
            return -1;
        } else {
            return stack2.pop();
            // 否则从栈2删除头部元素并返回
        }
    }
}
